package uicgas.pump.commands;

import uicgas.communication.Communication;
import uicgas.communication.RemoteCommand;
import uicgas.globaldata.MessagePayload;
import uicgas.pump.PumpLogic;
import uicgas.tools.UicGasGeneralException;

/**
 * Abstract class for different commands in pump side
 * 
 * @author Hong Wang
 *
 */
abstract class AbstractRemoteCommand implements RemoteCommand
{
	protected PumpLogic pumpLogic = null;

	protected Communication communication = null;

	protected AbstractRemoteCommand(PumpLogic pumpLogic,
			Communication communication)
	{
		this.pumpLogic = pumpLogic;
		this.communication = communication;
	}

	@Override
	/**
	 * {@inheritDoc}
	 */
	public void executeRemoteCommand()
	{

	}

	@Override
	/**
	 * {@inheritDoc}
	 */
	public final int executeRemoteCommand(MessagePayload data)
	{
		throw new UicGasGeneralException(new UnsupportedOperationException());
	}

	//	@Override
	//	public int executeRemoteCommand(MessagePayload data, int sourceID,
	//			ClientTypes sourceType)
	//	{
	//		return -1;
	//	}

}
